package com.smh.a02streamDemo1;

import java.util.ArrayList;
import java.util.Collections;
import java.util.function.Predicate;

public class StreamDemo3 {
    public static void main(String[] args) {

//        注意1:中间方法，返回新的Stream流，原来的Stream流只能使用一次，建议使用链式编程
//        注意2:修改Stream流中的数据，不会影响原来集合或者数组中的数据

        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"asd","qwe","zxc");

        list.stream().filter(s->s.startsWith("a")).forEach(s-> System.out.println(s));
        System.out.println("------------------");
        list.stream().filter(new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return s.startsWith("a");
            }
        }).forEach(s-> System.out.println(s));
        System.out.println("------------------");

        System.out.println(list);
        System.out.println("------------------");

        //获取前几个元素
        list.stream().limit(2).forEach(s-> System.out.println(s));
        System.out.println("------------------");
        //跳过前几个元素
        list.stream().skip(2).forEach(s-> System.out.println(s));
        System.out.println("------------------");
        list.stream().limit(2).skip(1).forEach(s-> System.out.println(s));
    }
}
